/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asja.dao;



import java.sql.SQLException;
import asja.bd.Conexao;
import asja.modelo.FuncionarioModelo;
import asja.modelo.LoginModelo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author Alice
 * Esta classe contem os métodos: Adicionar
 * 
 */
public class LoginDao {
    private Connection conecta;
    
    public LoginDao() throws SQLException {
        
        this.conecta = Conexao.getConnection();
    }
    
   
    
    // método para adicionar usuário do sistema.
    public void adiciona(LoginModelo in) throws SQLException{
     String adi= "insert into login (usuario, senha) values(?,?);";
     
     PreparedStatement stm = conecta.prepareStatement(adi); 
     stm.setString(1, in.getUsuario());
     stm.setString(2, in.getSenha());
     stm.execute(); //executa o comando para salvar no banco;
     stm.close();
   
    }
    
    
    
    
    //metodo para pesquisar por nome
    public List <LoginModelo> getTodos(String nome) throws SQLException {
        
        //a pesquisa sera por nome
       PreparedStatement stmt = this.conecta.prepareStatement("select * from login where nome like ?");
       stmt.setString(1, nome);
       //O objeto retornado da consulta é um ResultSet
       //ResultSet tem o metodo next para pesquisar em seus objetos
       
       ResultSet rs = stmt.executeQuery();       
       List <LoginModelo> usuarios = new ArrayList <LoginModelo>();// no caso de ter mais registros ele lista
       
       while (rs.next()) {
            LoginModelo usu = new LoginModelo();
            usu.setSenha(rs.getString("senha"));
            usu.setUsuario(rs.getString("usuario"));
                     
            //adiciona objeto a lista
            usuarios.add(usu);
        }
        stmt.close();
        conecta.close();
        return usuarios;
        
    }
    
    
    //pesquisar se existe o determinado usuario no banco de dados
    public List <LoginModelo> pesquisa_login(String usuario, String senha) throws SQLException {
        
        //a pesquisa sera por nome e usuario
       PreparedStatement stmt = this.conecta.prepareStatement("select * from login where usuario like ? and senha like?");
       stmt.setString(1, usuario);
       stmt.setString(2, senha);
       ResultSet rs = stmt.executeQuery(); //Para consultas, retorna um objeto ResultSet    
       List <LoginModelo> usuarios = new ArrayList <LoginModelo>();// no caso de ter mais registros ele lista
       
       while (rs.next()) {
            LoginModelo usu = new LoginModelo();
            usu.setSenha(rs.getString("senha"));
            usu.setUsuario(rs.getString("usuario"));
                     
            //adiciona objeto a lista
            usuarios.add(usu);
        }
        stmt.close();
        conecta.close();
        return usuarios;
        
    }
    
    
    public List <LoginModelo> pesquisa_usuario(String usuario) throws SQLException {
        
        //a pesquisa sera por nome e usuario
       PreparedStatement stmt = this.conecta.prepareStatement("select * from login where usuario like ?");
       stmt.setString(1, usuario);
       ResultSet rs = stmt.executeQuery(); //Para consultas, retorna um objeto ResultSet    
       List <LoginModelo> usuarios = new ArrayList <LoginModelo>();// no caso de ter mais registros ele lista
       
       while (rs.next()) {
            LoginModelo usu = new LoginModelo();
            usu.setUsuario(rs.getString("usuario"));
            System.out.println(rs.getString("usuario"));                    
                     
            //adiciona objeto a lista
            usuarios.add(usu);
        }
        stmt.close();
        conecta.close();
        return usuarios;
        
    }
    
   
    
    
     public void visualizaTodos () throws SQLException
	{
		
		ResultSet rs;                
               

		PreparedStatement stmt = this.conecta.prepareStatement ("select * from login");

		rs = (ResultSet) stmt.executeQuery();
		String tabela = "USUARIO   SENHA";
		System.out.println(tabela);
                
               while (rs.next()){
                    
                    LoginModelo usu = new LoginModelo();
		   //entre "" esta o nome da coluna no banco de dados, sem espaco      
		   System.out.println(rs.getString("usuario")+"        "+rs.getString("senha"));                    
                 
		}
		stmt.close();
		conecta.close();
	}

    }
   

